﻿if(typeof PicFocusManager == "undefined") PicFocusManager =[];

function picFocus_(imageContainerID,textContainerID,buttonContainerID,newsContainerID,intervarTime) {
    var a=new PicFocus(imageContainerID,textContainerID,buttonContainerID,newsContainerID,intervarTime);
    a.init();
    a.play();
}    
function PicFocus(imageContainerID,textContainerID,buttonContainerID,newsContainerID,intervarTime)
{
	this.$ = function (id){return document.getElementById(id)}
	this.index = PicFocusManager.length;
	PicFocusManager[PicFocusManager.length] = this;
	this.imageContainer = this.$(imageContainerID);
	this.textContainer = this.$(textContainerID);
	this.buttonContainer = this.$(buttonContainerID);
	this.newsContainer=this.$(newsContainerID);
	this.firstShow = 0; //默认显示项
	this.interval = (isNaN(intervarTime)?0:intervarTime) || 5000; //切换时间
	this.canAutoPlay = true; //是否可以自动切换
	this.currentPosition = this.firstShow;
	this.timer;
	this.images = [];
	this.texts = [];
	this.buttons = [];
	this.news=[];
	this.callback=function(){};
	this.bindEvent = function(){
		var _self = this;
		for(var i=0;i<this.images.length;i++){
			this.images[i].onmouseover = function(){
				_self.stop();
			}
			this.images[i].onmouseout = function(){
				_self.timer = setTimeout('PicFocusManager[' + _self.index + '].play()' , _self.interval )
			}
		}
		for(var i=0;i<this.buttons.length;i++){
			this.buttons[i].onclick = function(){
				_self.focus(this);
			}
		}
	}
	this.play = function(){
		this.stop();		
		if(this.canAutoPlay){		    
			this.setFocus(this.currentPosition++);			
			if(this.currentPosition >= this.images.length)this.currentPosition =0 ;
		}
		this.timer = setTimeout('PicFocusManager[' + this.index + '].play()' , this.interval );
		
	}
	this.stop = function(){
		clearTimeout( this.timer );
	}
	this.focus = function(button){
		for(var i=0;i<this.buttons.length;i++){
			if(this.buttons[i] == button){
				this.currentPosition = i;
				this.setFocus(this.currentPosition);
				break;
			}
		}
	}
	this.setFocus = function(i){
		for(var j=0;j<this.images.length;j++) this.images[j].style.display = (i==j)?"":"none";
		for(var j=0;j<this.texts.length;j++) this.texts[j].style.display = (i==j)?"inline":"none";
		for(var j=0;j<this.news.length;j++) this.news[j].style.display = (i==j)?"":"none";
		for(var j=0;j<this.buttons.length;j++) this.buttons[j].className = (i==j)? this.buttons[j].getAttribute("focusClass") :this.buttons[j].getAttribute("normalClass");
		this.callback(i);
	}
	this.init = function(){
		if(!(this.imageContainer && this.buttonContainer))
		{
		    //alert("未提供正确的参数");
		    return;    
		}		
		this.images=this.imageContainer.getElementsByTagName("img");
		if(this.textContainer) this.texts=this.textContainer.getElementsByTagName("a");
		if(this.newsContainer) this.news=this.newsContainer.getElementsByTagName("dl");
		this.buttons=this.buttonContainer.getElementsByTagName("a");
		this.bindEvent();
		for(var i=0;i<this.images.length;i++)
		{
			this.images[i].style.display = "none";
			if(i<this.texts.length) this.texts[i].style.display = "none";
			if(i<this.news.length) this.news[i].style.display = "none";
			this.buttons[i].className = this.buttons[i].getAttribute("normalClass");
			this.buttons[i].target="_self";
		}
		this.images[this.firstShow].style.display = "";
		if(this.firstShow<this.texts.length) this.texts[this.firstShow].style.display = "";
		if(this.firstShow<this.news.length) this.news[this.firstShow].style.display = "";
		this.buttons[this.firstShow].className = this.buttons[this.firstShow].getAttribute("focusClass");
		
	}
}